import { useUserStore } from "../store/user.ts";
import pinia from "../store";
import { DirectiveBinding } from "vue";
const userStore = useUserStore(pinia);
export default {
  mounted(el: HTMLElement, binding: DirectiveBinding) {
    const { value } = binding;
    const all_permission = "*:*:*";
    const permissions = userStore.permissionsList;

    if (value && value instanceof Array && value.length > 0) {
      const permissionFlag = value;

      const hasPermissions = permissions.some((permission: string) => {
        return (
          all_permission === permission || permissionFlag.includes(permission)
        );
      });

      if (!hasPermissions) {
        el.parentNode && el.parentNode.removeChild(el);
      }
    } else {
      throw new Error("请设置操作权限标签值");
    }
  },
};
